package com.cloudfun.campusshare.common.model.vo;

import com.cloudfun.campusshare.common.constant.DevicePlatform;
import com.cloudfun.campusshare.common.constant.ProductType;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * @author linyangping
 * @Title: 设备绑定vo
 * @date 2019/11/6 下午2:27
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "设备关联信息")
public class ReleteVO {
    @ApiModelProperty(value = "机器码")
    @NotBlank(message = "机器码不能为空")
    @JsonProperty("machineId")
    private String machineNo;

    @ApiModelProperty(value = "洗衣机设备识别码")
    @NotBlank(message = "洗衣机设备识别码不能为空")
    @JsonProperty("washId")
    private String washImei;

    @ApiModelProperty(value = "洗衣点id")
    @NotBlank(message = "洗衣点id不能为空")
    private String washPointId;

    @ApiModelProperty(value = "洗衣点具体位置id")
    private String concretePositionId;

    @ApiModelProperty(value = "设备名称")
    @NotBlank(message = "设备名称不能为空")
    private String deviceName;

    @ApiModelProperty(value = "设备品牌id")
    @NotBlank(message = "设备品牌id不能为空")
    private String brandId;

    @ApiModelProperty(value = "设备种类")
    @NotNull(message = "设备种类不能为空")
    private ProductType productType;

    @ApiModelProperty(value = "设备类型")
    @NotBlank(message = "设备类型不能为空")
    private String deviceType;

    @ApiModelProperty(value = "模式id")
    @NotBlank(message = "模式id不能为空")
    private String modeSetId;

    @ApiModelProperty(value = "服务时间id")
    @NotBlank(message = "服务时间id不能为空")
    private String serviceTimeId;

    @ApiModelProperty(value = "加液器设备识别码")
    @NotEmpty(message = "加液器设备识别码不能为空")
    @Length(max = 40, message = "设备识别码过长，限制40个字")
    @JsonProperty("deviceId")
    private String imei;
}
